package com.woniu108.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu108.carService.commos.dto.ProductItemDto;
import com.woniu108.product.model.ProductItem;
import com.woniu108.product.param.*;

import java.util.List;

/**
 * <p>
 * 商品总览 服务类
 * </p>
 *
 * @author yanxi
 * @since 2024-05-23
 */
public interface ProductItemService extends IService<ProductItem> {
    /**
     * 查询所有商品总览
     * @param param  商品种类编号,商品品牌编号,管理员id
     * @return 商品总览详情
     */
    List<ProductItemDto> findAllProductItem(FindAllProductItemParam param);
    /**
     * 查询所有正常商品总览
     * @param param  商品种类编号,商品品牌编号,管理员id
     * @return 商品总览详情
     */
    List<ProductItemDto> findAllNormalProductItem(FindAllNormalProductItemParam param);

    /**
     * 新增商品总览
     * @param param  商品名称,商品种类编号,,商品品牌编号,管理员id
     * @return boolean值
     */
    Boolean insertProductItem(InsertProductItemParam param);

    /**
     * 修改商品总览名
     * @param param 商品编号,新商品名称
     * @return boolean值
     */
    Boolean updateProductItem(UpdateProductItemParam param);

    /**
     * 禁用商品总览
     * @param param  总览id集合,管理员id
     * @return boolean值
     */
    Boolean banProductItem(BanProductItemParam param);

    /**
     * 禁用商品总览
     * @param param  总览id集合,管理员id
     * @return boolean值
     */
    Boolean unlockProductItem(UnlockProductItemParam param);
    /**
     * 删除商品总览
     * @param param  总览id集合,管理员id
     * @return boolean值
     */
    Boolean deleteProductItem(DeleteProductItemParam param);

    /**
     * 销量增加
     * @param pItemId 总览id
     * @return boolean值
     */
    Boolean addPayNum(Integer pItemId);
    /**
     * 销量减少
     * @param pItemId 总览id
     * @return boolean值
     */
    Boolean reducePayNum(Integer pItemId);
    /**
     * 通过id查商品总览
     * @param pItemId 总览id
     * @return 商品总览详情
     */
    ProductItemDto findProductItemByItemId(Integer pItemId);
}
